home *** CD-ROM | disk | FTP | other *** search
- package engine.dynamicObjects
- {
- import flash.display.BitmapData;
-
- public class TentacleSegment extends DynamicObject
- {
-
-
- public var tentacleR:Number = 0;
-
- public var rOffsetBase:Number = 0;
-
- public var prevSeg:TentacleSegment;
-
- private var _localR:Number = 0;
-
- public var rOffsetRand:Number = 0;
-
- public var rDamp:Number = 1;
-
- public var segLength:Number = 0;
-
- public var segX:Number = 0;
-
- public var segY:Number = 0;
-
- public var rOffset:Number = 0;
-
- public var sinVel:Number;
-
- public var sinNum:Number;
-
- public var segAngleOffset:Number = 0;
-
- public var segNum:Number;
-
- public function TentacleSegment(bmd:BitmapData)
- {
- segX = 0;
- segY = 0;
- rOffsetRand = 0;
- rOffset = 0;
- _localR = 0;
- rOffsetBase = 0;
- tentacleR = 0;
- rDamp = 1;
- segAngleOffset = 0;
- segLength = 0;
- sinNum = Math.random() * 5;
- sinVel = 0.015 + Math.random() * 0.1;
- super(bmd);
- _drawMethod = DMETHOD.Slow;
- _persistent = true;
- _lockScale = true;
- _objectType = OBJ_TYPES.GP;
- solid = true;
- z = 1.8;
- roY = bmd.height / 2 * 0.9;
- segLength = bmd.height * 0.75;
- segAngleOffset = 1.57;
- }
-
- override public function fStep() : *
- {
- var vec:* = undefined;
- var tsr:Number = NaN;
- super.fStep();
- sinNum += sinVel;
- if(prevSeg)
- {
- vec = getVector(prevSeg.segAngleOffset + prevSeg.r * 1,prevSeg.segLength * 1);
- x = prevSeg.x + vec.x;
- y = prevSeg.y + vec.y;
- _localR = Math.sin(sinNum) * 0.6;
- _localR *= 0.25 + segNum * 0.1;
- tsr = prevSeg.r + rOffset * (1 + segNum * 0.4) + rOffsetRand;
- _localR += (tsr - r) * 0.1;
- }
- else
- {
- x = segX;
- y = segY;
- _localR = Math.sin(sinNum) * 0 + tentacleR;
- }
- r = rOffsetBase + _localR;
- }
- }
- }
-